# Архитектурные аспекты (aspects)

Аспекты позволяют выделить архитектурные компоненты реализующие определенный архитектурный аспект. Например, бизнес-функцию.
В отличие от [контекстов](/docs/dochub.contexts), аспекты указываются непосредственно в [компонентах](/docs/dochub.components). Т.е. именно в
компоненте указывается какой из аспектов им реализуется. В манифесте аспекта указываются общие сведения о нем:

Описание аспекта в манифесте [/manifest/aspects.yaml](/manifest/aspects.yaml):
```yaml
aspects:                                # Архитектурные аспекты
    dochub.gitlab.auth:
        title: Авторизация GitLab       # Название аспекта
        location: DocHub/Авторизация    # Размещение аспекта в навигационном дереве
        default-context: dochub.context    # Значения контекста по-умолчанию (Необязательный)
    ...
```

В компоненте указывается, какие аспекты он реализует:
```yaml
title: DocHub       # Название компонента
entity: rectangle   # Сущность компонента из PlantUML (https://plantuml.com/ru/deployment-diagram)
  ...
aspects:            # Аспекты, которе реализует компонент
  - dochub.gitlab.auth
  - dochub.contexts
  - dochub.aspects
  - dochub.docs
  - dochub.radar
  - dochub.navigation
  ...
```

При выборе аспекта в меню открывается его карточка. Карточка содержит расширенные сведения об аспекте, а также
контексты в которых аспект встречается. Независимо от контекста аспект не визуализируется. Аспект может встречаться
на различных уровнях рассмотрения архитектуры (в разных [контекстах](/docs/dochub.contexts)). Визуализация вне контекстов привела
бы к смешению уровней и конфликту представления на диаграмме.

Пример представления аспекта:
![Карточка аспекта](@aspect/dochub.gitlab.auth)

